% coding: utf-8



\subsection{Tercera parte: traceroute sobre ICMP.}
Para implementar esta función lo que hicimos fue enviar paquetes ICMP de tipo Echo Request al host del cual queremos conocer su camino, con un paquete inicial con TTL igual a 1. Mientras los paquetes que se reciben son de tipo Time exceeded, se envía un nuevo paquete con el TTL incrementado. Cuando se recibe un paquete de tipo Echo Reply finaliza el algoritmo, o bien, al llegar a un TTL igual a 30.

A continuacion, a modo de prueba, vamos a mostrar el resultado de la función \textit{traceroute} para varios destinos determinando los caminos de IP's que se deben recorrer para llegar hasta ese destino.

\begin{itemize}
\item{www.google.com}

\begin{verbatim}
[(None, 1), ('192.168.1.1', 2), (None, 3), (None, 4), (None, 5), (None, 6), 
('200.89.164.205', 7), ('200.89.165.222', 8), ('200.49.159.254', 9), 
('209.85.251.28', 10), ('209.85.251.196', 11), ('72.14.239.182', 12), 
('*', 13), ('*', 14), ('*', 15), ('*', 16), ('*', 17), ('*', 18), ('*', 19), 
('*', 20), ('*', 21), ('*', 22), ('*', 23), ('*', 24), ('*', 25), ('*', 26), 
('*', 27), ('*', 28), ('*', 29)]

\end{verbatim}

\item{www.facebook.com}

\begin{verbatim}
[(None, 1), ('192.168.1.1', 2), (None, 3), (None, 4), (None, 5), (None, 6), 
('200.89.164.197', 7), ('200.89.165.198', 8), ('200.89.165.86', 9), 
('208.178.244.97', 10), ('67.16.151.94', 11), ('67.16.166.190', 12), 
('67.16.166.250', 13), ('64.215.81.234', 14), ('31.13.24.46', 15), 
('74.119.78.156', 16), ('31.13.25.207', 17), ('*', 18), ('*', 19), 
('*', 20), ('*', 21), ('*', 22), ('*', 23), ('*', 24), ('*', 25), 
('*', 26), ('*', 27), ('*', 28), ('*', 29)]

\end{verbatim}

\item{www.dc.uba.ar}

\begin{verbatim}
[(None, 1), ('192.168.1.1', 2), (None, 3), (None, 4), (None, 5), (None, 6), 
('200.89.164.193', 7), ('200.89.165.222', 8), ('200.49.69.165', 9), 
('190.220.179.1', 10), ('190.220.176.34', 11), ('190.220.179.122', 12), 
(None, 13), ('157.92.47.13', 14), (None, 15), (None, 16), (None, 17), 
(None, 18), (None, 19), (None, 20), (None, 21), (None, 22), (None, 23), 
(None, 24), (None, 25), (None, 26), (None, 27), (None, 28), (None, 29)]

\end{verbatim}

\item{www.hotmail.com}

\begin{verbatim}
[(None, 1), ('192.168.1.1', 2), (None, 3), (None, 4), 
(None, 5), (None, 6), ('200.89.165.245', 7), ('200.89.165.129', 8), 
('200.89.165.150', 9), ('208.178.244.97', 10), ('208.49.147.86', 11), 
('207.46.43.60', 12), ('207.46.43.234', 13), ('207.46.46.179', 14), 
(None, 15), ('*', 16), ('*', 17), ('*', 18), ('*', 19), ('*', 20), 
('*', 21), ('*', 22), ('*', 23), ('*', 24), ('*', 25), ('*', 26), 
('*', 27), ('*', 28), ('*', 29)]

\end{verbatim}

\end{itemize}

Luego analizaremos las rutas a estos sitios para distintos días y horarios:

\begin{itemize}
 \item Jueves 11:00 am

  \begin{itemize}
   \item www.google.com
  \begin{verbatim}
[(None, 1), ('192.168.1.1', 2), (None, 3), (None, 4), (None, 5), (None, 6),
('200.89.164.197', 7), ('200.89.165.222', 8), ('200.49.159.254', 9),
('209.85.251.28', 10), ('209.85.251.196', 11), ('*', 12), ('*', 13),
('*', 14), ('*', 15), ('*', 16), ('*', 17), ('*', 18), ('*', 19), ('*', 20),
('*', 21), ('*', 22), ('*', 23), ('*', 24), ('*', 25), ('*', 26), ('*', 27),
(None, 28), ('*', 29)]
   
  \end{verbatim}

  \item www.facebook.com
  \begin{verbatim}
[(None, 1), ('192.168.1.1', 2), (None, 3), (None, 4), (None, 5), (None, 6),
('200.89.165.209', 7), ('200.89.165.129', 8), ('200.89.165.150', 9), 
('64.214.130.253', 10), ('67.16.139.2', 11), ('67.16.166.190', 12),
('64.215.81.234', 13), ('64.215.81.234', 14), ('74.119.78.148', 15), 
('74.119.79.127', 16), (None, 17), ('*', 18), ('*', 19), ('*', 20), 
('*', 21), ('*', 22), ('*', 23), ('*', 24), ('*', 25), ('*', 26), 
('*', 27), ('*', 28), ('*', 29)]
   
  \end{verbatim}

  \item www.dc.uba.ar
  \begin{verbatim}
[(None, 1), ('192.168.1.1', 2), (None, 3), (None, 4), (None, 5), (None, 6),
('200.89.164.193', 7), ('200.89.165.222', 8), (None, 9), (None, 10), 
('190.220.176.34', 11), ('190.220.179.122', 12), (None, 13), 
('157.92.47.13', 14), (None, 15), (None, 16), (None, 17), (None, 18), 
(None, 19), (None, 20), (None, 21), (None, 22), (None, 23), (None, 24), 
(None, 25), (None, 26), (None, 27), (None, 28), (None, 29)]
   
  \end{verbatim}

  \item www.hotmail.com
  \begin{verbatim}
[(None, 1), ('192.168.1.1', 2), (None, 3), (None, 4), (None, 5), (None, 6), 
('200.89.165.209', 7), ('200.89.165.198', 8), ('200.89.165.150', 9), 
('208.50.25.97', 10), ('208.49.147.86', 11), ('207.46.43.60', 12), 
(None, 13), ('*', 14), ('*', 15), ('*', 16), ('*', 17), ('*', 18), 
('*', 19), ('*', 20), ('*', 21), ('*', 22), ('*', 23), ('*', 24), ('*', 25), 
('*', 26), (None, 27), ('*', 28), ('*', 29)]
  \end{verbatim}

  \end{itemize}

 \item Viernes 2:00 am

  \begin{itemize}
   \item www.google.com
  \begin{verbatim}
[(None, 1), ('192.168.1.1', 2), (None, 3), (None, 4), (None, 5), (None, 6), 
('200.89.165.209', 7), ('200.89.165.222', 8), ('200.49.159.254', 9), 
('209.85.251.28', 10), ('209.85.251.196', 11), ('*', 12), ('*', 13), 
('*', 14), ('*', 15), ('*', 16), ('*', 17), ('*', 18), ('*', 19), 
('*', 20), ('*', 21), ('*', 22), ('*', 23), ('*', 24), ('*', 25), 
('*', 26), ('*', 27), ('*', 28), ('*', 29)]
  \end{verbatim}

  \item www.facebook.com
  \begin{verbatim}
[(None, 1), ('192.168.1.1', 2), (None, 3), (None, 4), (None, 5), (None, 6), 
('200.89.164.197', 7), ('200.89.165.129', 8), ('200.89.165.86', 9), 
('208.50.25.65', 10), ('67.17.71.158', 11), ('67.16.166.190', 12), 
('67.16.166.250', 13), ('64.215.81.234', 14), ('74.119.78.60', 15), 
('31.13.24.22', 16), ('31.13.24.17', 17), ('31.13.25.213', 18), 
('*', 19), ('*', 20), (None, 21), ('*', 22), (None, 23), ('*', 24), 
('*', 25), ('*', 26), ('*', 27), ('*', 28), ('*', 29)]
  \end{verbatim}

  \item www.dc.uba.ar
  \begin{verbatim}
[(None, 1), ('192.168.1.1', 2), (None, 3), (None, 4), (None, 5), (None, 6), 
('200.89.164.193', 7), ('200.89.165.222', 8), ('200.49.69.165', 9), 
('190.220.179.1', 10), ('190.220.176.34', 11), ('190.220.179.122', 12), 
(None, 13), ('157.92.47.13', 14), (None, 15), (None, 16), (None, 17), 
(None, 18), (None, 19), (None, 20), (None, 21), (None, 22), (None, 23), 
(None, 24), (None, 25), (None, 26), (None, 27), (None, 28), (None, 29)]
   
  \end{verbatim}

  \item www.hotmail.com
  \begin{verbatim}
[(None, 1), ('192.168.1.1', 2), (None, 3), (None, 4), (None, 5), 
(None, 6), ('200.89.165.213', 7), ('200.89.165.198', 8), 
('200.89.165.150', 9), ('208.178.244.97', 10), ('208.49.147.86', 11), 
('207.46.43.60', 12), ('207.46.46.55', 13), ('*', 14), ('*', 15), 
('*', 16), ('*', 17), ('*', 18), ('*', 19), ('*', 20), ('*', 21), 
('*', 22), ('*', 23), ('*', 24), ('*', 25), ('*', 26), ('*', 27), 
('*', 28), ('*', 29)]   
  \end{verbatim}

  \end{itemize}

 \item Domingo 10:00 am
  \begin{itemize}
   \item www.google.com
  \begin{verbatim}
[(None, 1), ('192.168.1.1', 2), (None, 3), (None, 4), (None, 5), 
(None, 6), ('200.89.164.197', 7), ('200.89.165.222', 8), 
('200.49.159.254', 9), ('209.85.251.28', 10), ('209.85.251.196', 11), 
('*', 12), ('*', 13), ('*', 14), ('*', 15), ('*', 16), ('*', 17), 
('*', 18), ('*', 19), ('*', 20), ('*', 21), ('*', 22), ('*', 23), 
('*', 24), ('*', 25), ('*', 26), ('*', 27), ('*', 28), ('*', 29)]
  \end{verbatim}

  \item www.facebook.com
  \begin{verbatim}
[(None, 1), ('192.168.1.1', 2), (None, 3), (None, 4), (None, 5), 
(None, 6), ('200.89.165.213', 7), ('200.89.165.198', 8), 
('200.89.165.150', 9), ('208.178.245.21', 10), ('67.17.71.158', 11), 
('67.16.166.190', 12), ('67.16.166.250', 13), ('64.215.81.234', 14), 
('74.119.78.60', 15), ('74.119.79.127', 16), ('31.13.24.17', 17), 
('*', 18), ('*', 19), ('*', 20), ('*', 21), ('*', 22), ('*', 23), 
('*', 24), ('*', 25), ('*', 26), ('*', 27), ('*', 28), ('*', 29)]
  \end{verbatim}

  \item www.dc.uba.ar
  \begin{verbatim}
[(None, 1), ('192.168.1.1', 2), (None, 3), (None, 4), 
('190.188.170.1', 5), (None, 6), ('200.89.164.193', 7), 
('200.89.165.222', 8), ('200.49.69.165', 9), ('190.220.179.1', 10), 
('190.220.176.34', 11), ('190.220.179.122', 12), (None, 13), 
('157.92.47.13', 14), (None, 15), (None, 16), (None, 17), (None, 18), 
(None, 19), (None, 20), (None, 21), (None, 22), (None, 23), 
(None, 24), (None, 25), (None, 26), (None, 27), (None, 28), (None, 29)]
  \end{verbatim}

  \item www.hotmail.com
  \begin{verbatim}
[(None, 1), (None, 2), (None, 3), (None, 4), (None, 5), (None, 6), 
('200.89.165.209', 7), ('200.89.165.129', 8), ('200.89.165.86', 9), 
('64.209.94.69', 10), ('208.49.147.86', 11), ('207.46.43.60', 12), 
('207.46.46.55', 13), (None, 14), ('*', 15), ('*', 16), ('*', 17), 
('*', 18), ('*', 19), ('*', 20), ('*', 21), ('*', 22), ('*', 23), 
('*', 24), ('*', 25), ('*', 26), ('*', 27), ('*', 28), ('*', 29)]
  \end{verbatim}

  \end{itemize}

\end{itemize}

\subsubsection{Conclusiones sobre el impacto del horario sobre la función}
Luego de ejecutar la función traceroute para distintos días y distintos momentos del día, podemos decir lo siguiente al compararlas:
\begin{itemize}
 \item www.google.com: Entre las corridas del jueves y del viernes se puede observar que en la del jueves la ip alcanzada en el salto 28 da none y en la del viernes no.
Por otra parte en la del viernes cambia la ip en el salto 7. Entre en la del viernes y la del domingo todo es igual salvo que  cambia otra vez la ip del salto 7.

 \item www.facebook.com : Para este sitio se pueden observar cambios en las ip en los saltos 7, 9, 10, 11, 13 y 15 a 18. También hay algunos none en la del viernes con respecto a la del jueves, en los últimos saltos. Con respecto a la corrida del domingo, hay algunas direcciones ip en los saltos que difieren de entre las otras pruebas. Para el domingo dió que no hay none. Igual de todas formas para las 3 corridas realizadas en ninguna, con 30 saltos, se alcanza el destino deseado; en este caso www.facebook.com (69.171.242.70)

\item www.dc.uba.ar: Entre la prueba del jueves y la del viernes la única diferencia es que en la del viernes se pudieron alcanzar host en los saltos 9 y 10.
Con respecto a la prueba del domingo la única diferencia esta en el salto 5, donde se encuentra ip

\item www.hotmail.com: Entre la corrida del jueves y la del viernes se puede observar que en los saltos 7 y 10 se alcanzan direcciones ip diferentes y que en el salto 27 se alcanza algún host; es decir que no da un NONE, algo que sí ocurre en la corrida del jueves.
Con respecto a la corrida del domingo, se puede obervar algunos none que en las otras corridas no aparecen y algunos cambios en las direcciones ip alcanzadas en algunos saltos.

\end{itemize}

Luego podemos concluir que según en qué momento del día se realice el traceroute la ruta puede cambiar o no. Esto se debe a que los paquetes que usa traceroute para averiguar la ruta viajan sobre una red de datagramas (IPs). Entonces el camino seguido por los paquetes dependerá de los algoritmos de ruteo implementados en los routers intermedios. Además, existe la posibilidad de caída de nodos, por lo que se deberían elegir rutas alternativas. También es posible que se efectúe load balancing en algunos routers, por lo que puede haber varias alternativas para el camino a seguir de los paquetes.
